﻿using System;
using System.Data;
using System.Text;
using System.Data.SqlClient;
using MxWeiXinPF.DBUtility;
using MxWeiXinPF.Common;//Please add references
namespace MxWeiXinPF.DAL
{
	/// <summary>
	/// 数据访问类:wx_sTicket
	/// </summary>
	public partial class wx_sTicket
	{
		public wx_sTicket()
		{}
        #region  BasicMethod

        /// <summary>
        /// 得到最大ID
        /// </summary>
        public int GetMaxId()
        {
            return DbHelperSQL.GetMaxID("id", "wx_sTicket");
        }

        /// <summary>
        /// 是否存在该记录
        /// </summary>
        public bool Exists(int id)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select count(1) from wx_sTicket");
            strSql.Append(" where id=@id");
            SqlParameter[] parameters = {
					new SqlParameter("@id", SqlDbType.Int,4)
			};
            parameters[0].Value = id;

            return DbHelperSQL.Exists(strSql.ToString(), parameters);
        }


        /// <summary>
        /// 增加一条数据
        /// </summary>
        public int Add(MxWeiXinPF.Model.wx_sTicket model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("insert into wx_sTicket(");
            strSql.Append("wid,actionName,succTip,brief,beginDate,endDate,aContent,usedRemark,telphone,wUrl,seq,remark,createDate,endNotice,endContent,bannerPic,beginPic,endPic,pwd)");
            strSql.Append(" values (");
            strSql.Append("@wid,@actionName,@succTip,@brief,@beginDate,@endDate,@aContent,@usedRemark,@telphone,@wUrl,@seq,@remark,@createDate,@endNotice,@endContent,@bannerPic,@beginPic,@endPic,@pwd)");
            strSql.Append(";select @@IDENTITY");
            SqlParameter[] parameters = {
					new SqlParameter("@wid", SqlDbType.Int,4),
					new SqlParameter("@actionName", SqlDbType.VarChar,100),
					new SqlParameter("@succTip", SqlDbType.VarChar,500),
					new SqlParameter("@brief", SqlDbType.VarChar,500),
					new SqlParameter("@beginDate", SqlDbType.DateTime),
					new SqlParameter("@endDate", SqlDbType.DateTime),
					new SqlParameter("@aContent", SqlDbType.VarChar,2000),
					new SqlParameter("@usedRemark", SqlDbType.VarChar,500),
					new SqlParameter("@telphone", SqlDbType.VarChar,30),
					new SqlParameter("@wUrl", SqlDbType.VarChar,1000),
					new SqlParameter("@seq", SqlDbType.Int,4),
					new SqlParameter("@remark", SqlDbType.VarChar,4000),
					new SqlParameter("@createDate", SqlDbType.DateTime),
					new SqlParameter("@endNotice", SqlDbType.VarChar,100),
					new SqlParameter("@endContent", SqlDbType.VarChar,500),
					new SqlParameter("@bannerPic", SqlDbType.VarChar,800),
					new SqlParameter("@beginPic", SqlDbType.VarChar,800),
					new SqlParameter("@endPic", SqlDbType.VarChar,800),
					new SqlParameter("@pwd", SqlDbType.VarChar,20)};
            parameters[0].Value = model.wid;
            parameters[1].Value = model.actionName;
            parameters[2].Value = model.succTip;
            parameters[3].Value = model.brief;
            parameters[4].Value = model.beginDate;
            parameters[5].Value = model.endDate;
            parameters[6].Value = model.aContent;
            parameters[7].Value = model.usedRemark;
            parameters[8].Value = model.telphone;
            parameters[9].Value = model.wUrl;
            parameters[10].Value = model.seq;
            parameters[11].Value = model.remark;
            parameters[12].Value = model.createDate;
            parameters[13].Value = model.endNotice;
            parameters[14].Value = model.endContent;
            parameters[15].Value = model.bannerPic;
            parameters[16].Value = model.beginPic;
            parameters[17].Value = model.endPic;
            parameters[18].Value = model.pwd;

            object obj = DbHelperSQL.GetSingle(strSql.ToString(), parameters);
            if (obj == null)
            {
                return 0;
            }
            else
            {
                return Convert.ToInt32(obj);
            }
        }
        /// <summary>
        /// 更新一条数据
        /// </summary>
        public bool Update(MxWeiXinPF.Model.wx_sTicket model)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update wx_sTicket set ");
            strSql.Append("wid=@wid,");
            strSql.Append("actionName=@actionName,");
            strSql.Append("succTip=@succTip,");
            strSql.Append("brief=@brief,");
            strSql.Append("beginDate=@beginDate,");
            strSql.Append("endDate=@endDate,");
            strSql.Append("aContent=@aContent,");
            strSql.Append("usedRemark=@usedRemark,");
            strSql.Append("telphone=@telphone,");
            strSql.Append("wUrl=@wUrl,");
            strSql.Append("seq=@seq,");
            strSql.Append("remark=@remark,");
            strSql.Append("createDate=@createDate,");
            strSql.Append("endNotice=@endNotice,");
            strSql.Append("endContent=@endContent,");
            strSql.Append("bannerPic=@bannerPic,");
            strSql.Append("beginPic=@beginPic,");
            strSql.Append("endPic=@endPic,");
            strSql.Append("pwd=@pwd");
            strSql.Append(" where id=@id");
            SqlParameter[] parameters = {
					new SqlParameter("@wid", SqlDbType.Int,4),
					new SqlParameter("@actionName", SqlDbType.VarChar,100),
					new SqlParameter("@succTip", SqlDbType.VarChar,500),
					new SqlParameter("@brief", SqlDbType.VarChar,500),
					new SqlParameter("@beginDate", SqlDbType.DateTime),
					new SqlParameter("@endDate", SqlDbType.DateTime),
					new SqlParameter("@aContent", SqlDbType.VarChar,2000),
					new SqlParameter("@usedRemark", SqlDbType.VarChar,500),
					new SqlParameter("@telphone", SqlDbType.VarChar,30),
					new SqlParameter("@wUrl", SqlDbType.VarChar,1000),
					new SqlParameter("@seq", SqlDbType.Int,4),
					new SqlParameter("@remark", SqlDbType.VarChar,4000),
					new SqlParameter("@createDate", SqlDbType.DateTime),
					new SqlParameter("@endNotice", SqlDbType.VarChar,100),
					new SqlParameter("@endContent", SqlDbType.VarChar,500),
					new SqlParameter("@bannerPic", SqlDbType.VarChar,800),
					new SqlParameter("@beginPic", SqlDbType.VarChar,800),
					new SqlParameter("@endPic", SqlDbType.VarChar,800),
					new SqlParameter("@pwd", SqlDbType.VarChar,20),
					new SqlParameter("@id", SqlDbType.Int,4)};
            parameters[0].Value = model.wid;
            parameters[1].Value = model.actionName;
            parameters[2].Value = model.succTip;
            parameters[3].Value = model.brief;
            parameters[4].Value = model.beginDate;
            parameters[5].Value = model.endDate;
            parameters[6].Value = model.aContent;
            parameters[7].Value = model.usedRemark;
            parameters[8].Value = model.telphone;
            parameters[9].Value = model.wUrl;
            parameters[10].Value = model.seq;
            parameters[11].Value = model.remark;
            parameters[12].Value = model.createDate;
            parameters[13].Value = model.endNotice;
            parameters[14].Value = model.endContent;
            parameters[15].Value = model.bannerPic;
            parameters[16].Value = model.beginPic;
            parameters[17].Value = model.endPic;
            parameters[18].Value = model.pwd;
            parameters[19].Value = model.id;

            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        /// <summary>
        /// 删除一条数据
        /// </summary>
        public bool Delete(int id)
        {

            StringBuilder strSql = new StringBuilder();
            strSql.Append("delete from wx_sTicket ");
            strSql.Append(" where id=@id");
            SqlParameter[] parameters = {
					new SqlParameter("@id", SqlDbType.Int,4)
			};
            parameters[0].Value = id;

            int rows = DbHelperSQL.ExecuteSql(strSql.ToString(), parameters);
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        /// <summary>
        /// 批量删除数据
        /// </summary>
        public bool DeleteList(string idlist)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("delete from wx_sTicket ");
            strSql.Append(" where id in (" + idlist + ")  ");
            int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }


        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public MxWeiXinPF.Model.wx_sTicket GetModel(int id)
        {

            StringBuilder strSql = new StringBuilder();
            strSql.Append("select  top 1 id,wid,actionName,succTip,brief,beginDate,endDate,aContent,usedRemark,telphone,wUrl,seq,remark,createDate,endNotice,endContent,bannerPic,beginPic,endPic,pwd from wx_sTicket ");
            strSql.Append(" where id=@id");
            SqlParameter[] parameters = {
					new SqlParameter("@id", SqlDbType.Int,4)
			};
            parameters[0].Value = id;

            MxWeiXinPF.Model.wx_sTicket model = new MxWeiXinPF.Model.wx_sTicket();
            DataSet ds = DbHelperSQL.Query(strSql.ToString(), parameters);
            if (ds.Tables[0].Rows.Count > 0)
            {
                return DataRowToModel(ds.Tables[0].Rows[0]);
            }
            else
            {
                return null;
            }
        }


        /// <summary>
        /// 得到一个对象实体
        /// </summary>
        public MxWeiXinPF.Model.wx_sTicket DataRowToModel(DataRow row)
        {
            MxWeiXinPF.Model.wx_sTicket model = new MxWeiXinPF.Model.wx_sTicket();
            if (row != null)
            {
                if (row["id"] != null && row["id"].ToString() != "")
                {
                    model.id = int.Parse(row["id"].ToString());
                }
                if (row["wid"] != null && row["wid"].ToString() != "")
                {
                    model.wid = int.Parse(row["wid"].ToString());
                }
                if (row["actionName"] != null)
                {
                    model.actionName = row["actionName"].ToString();
                }
                if (row["succTip"] != null)
                {
                    model.succTip = row["succTip"].ToString();
                }
                if (row["brief"] != null)
                {
                    model.brief = row["brief"].ToString();
                }
                if (row["beginDate"] != null && row["beginDate"].ToString() != "")
                {
                    model.beginDate = DateTime.Parse(row["beginDate"].ToString());
                }
                if (row["endDate"] != null && row["endDate"].ToString() != "")
                {
                    model.endDate = DateTime.Parse(row["endDate"].ToString());
                }
                if (row["aContent"] != null)
                {
                    model.aContent = row["aContent"].ToString();
                }
                if (row["usedRemark"] != null)
                {
                    model.usedRemark = row["usedRemark"].ToString();
                }
                if (row["telphone"] != null)
                {
                    model.telphone = row["telphone"].ToString();
                }
                if (row["wUrl"] != null)
                {
                    model.wUrl = row["wUrl"].ToString();
                }
                if (row["seq"] != null && row["seq"].ToString() != "")
                {
                    model.seq = int.Parse(row["seq"].ToString());
                }
                if (row["remark"] != null)
                {
                    model.remark = row["remark"].ToString();
                }
                if (row["createDate"] != null && row["createDate"].ToString() != "")
                {
                    model.createDate = DateTime.Parse(row["createDate"].ToString());
                }
                if (row["endNotice"] != null)
                {
                    model.endNotice = row["endNotice"].ToString();
                }
                if (row["endContent"] != null)
                {
                    model.endContent = row["endContent"].ToString();
                }
                if (row["bannerPic"] != null)
                {
                    model.bannerPic = row["bannerPic"].ToString();
                }
                if (row["beginPic"] != null)
                {
                    model.beginPic = row["beginPic"].ToString();
                }
                if (row["endPic"] != null)
                {
                    model.endPic = row["endPic"].ToString();
                }
                if (row["pwd"] != null)
                {
                    model.pwd = row["pwd"].ToString();
                }
            }
            return model;
        }

        /// <summary>
        /// 获得数据列表
        /// </summary>
        public DataSet GetList(string strWhere)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select id,wid,actionName,succTip,brief,beginDate,endDate,aContent,usedRemark,telphone,wUrl,seq,remark,createDate,endNotice,endContent,bannerPic,beginPic,endPic,pwd ");
            strSql.Append(" FROM wx_sTicket ");
            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }
            return DbHelperSQL.Query(strSql.ToString());
        }

        /// <summary>
        /// 获得前几行数据
        /// </summary>
        public DataSet GetList(int Top, string strWhere, string filedOrder)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select ");
            if (Top > 0)
            {
                strSql.Append(" top " + Top.ToString());
            }
            strSql.Append(" id,wid,actionName,succTip,brief,beginDate,endDate,aContent,usedRemark,telphone,wUrl,seq,remark,createDate,endNotice,endContent,bannerPic,beginPic,endPic,pwd ");
            strSql.Append(" FROM wx_sTicket ");
            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }
            strSql.Append(" order by " + filedOrder);
            return DbHelperSQL.Query(strSql.ToString());
        }

        /// <summary>
        /// 获取记录总数
        /// </summary>
        public int GetRecordCount(string strWhere)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select count(1) FROM wx_sTicket ");
            if (strWhere.Trim() != "")
            {
                strSql.Append(" where " + strWhere);
            }
            object obj = DbHelperSQL.GetSingle(strSql.ToString());
            if (obj == null)
            {
                return 0;
            }
            else
            {
                return Convert.ToInt32(obj);
            }
        }
        /// <summary>
        /// 分页获取数据列表
        /// </summary>
        public DataSet GetListByPage(string strWhere, string orderby, int startIndex, int endIndex)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("SELECT * FROM ( ");
            strSql.Append(" SELECT ROW_NUMBER() OVER (");
            if (!string.IsNullOrEmpty(orderby.Trim()))
            {
                strSql.Append("order by T." + orderby);
            }
            else
            {
                strSql.Append("order by T.id desc");
            }
            strSql.Append(")AS Row, T.*  from wx_sTicket T ");
            if (!string.IsNullOrEmpty(strWhere.Trim()))
            {
                strSql.Append(" WHERE " + strWhere);
            }
            strSql.Append(" ) TT");
            strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", startIndex, endIndex);
            return DbHelperSQL.Query(strSql.ToString());
        }

        /*
        /// <summary>
        /// 分页获取数据列表
        /// </summary>
        public DataSet GetList(int PageSize,int PageIndex,string strWhere)
        {
            SqlParameter[] parameters = {
                    new SqlParameter("@tblName", SqlDbType.VarChar, 255),
                    new SqlParameter("@fldName", SqlDbType.VarChar, 255),
                    new SqlParameter("@PageSize", SqlDbType.Int),
                    new SqlParameter("@PageIndex", SqlDbType.Int),
                    new SqlParameter("@IsReCount", SqlDbType.Bit),
                    new SqlParameter("@OrderType", SqlDbType.Bit),
                    new SqlParameter("@strWhere", SqlDbType.VarChar,1000),
                    };
            parameters[0].Value = "wx_sTicket";
            parameters[1].Value = "id";
            parameters[2].Value = PageSize;
            parameters[3].Value = PageIndex;
            parameters[4].Value = 0;
            parameters[5].Value = 0;
            parameters[6].Value = strWhere;	
            return DbHelperSQL.RunProcedure("UP_GetRecordByPage",parameters,"ds");
        }*/

        #endregion  BasicMethod
		#region  ExtensionMethod

        /// <summary>
        /// 兑换密码是否正确
        /// </summary>
        public bool ExistsPwd(int id, string pwd)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("select count(1) from wx_sTicket");
            strSql.Append(" where id=@id and pwd=@pwd");
            SqlParameter[] parameters = {
					new SqlParameter("@id", SqlDbType.Int,4),
                    new SqlParameter("@pwd", SqlDbType.VarChar,50)
			};
            parameters[0].Value = id;
            parameters[1].Value = pwd;
            return DbHelperSQL.Exists(strSql.ToString(), parameters);
        }



        /// <summary>
        /// 删除一条优惠券活动数据[活动主表，回复的关键词记录，对应的奖品列表，获奖用户信息表]
        /// </summary>
        public bool DeleteAction(int id)
        {

            StringBuilder strSql = new StringBuilder();
            strSql.Append("delete from wx_requestRule where modelFunctionName='优惠券简单版' and modelFunctionId=" + id + " ; ");
            strSql.Append("delete from wx_sTicket where id=" + id + " ; ");
            strSql.Append(" delete from wx_sttAwardItem where actId=" + id + ";");
            strSql.Append(" delete from wx_sttAwardUser where actId=" + id + ";");
            int rows = DbHelperSQL.ExecuteSql(strSql.ToString());
            if (rows > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }


        /// <summary>
        /// 获得查询分页数据
        /// </summary>
        public DataSet GetList(int pageSize, int pageIndex, string strWhere, string filedOrder, out int recordCount)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append(" select  a.*,'' as status_s,'' as url,(select reqkeywords from wx_requestRule where modelfunctionName='优惠券简单版' and modelFunctionId=a.id) as kw  from wx_sTicket a    ");
            if (strWhere.Trim() != "")
            {
                strSql.Append(" where  " + strWhere);
            }
            recordCount = Convert.ToInt32(DbHelperSQL.GetSingle(PagingHelper.CreateCountingSql(strSql.ToString())));
            return DbHelperSQL.Query(PagingHelper.CreatePagingSql(recordCount, pageSize, pageIndex, strSql.ToString(), filedOrder));
        }

		#endregion  ExtensionMethod
	}
}

